JMU JMU - Department of Computer Science
Help Tools
Project Policies


Projects in this course are very flexible. The most important requirement is that you develop a "cool" networked/distributed application of some kind. Projects need not involve original concepts (i.e., you don't need to come up with a novel idea).

1 Topics

Broadly speaking there are three different kinds of projects, applications for general users, applications for system administrators, and and libraries.

2 Collaboration

You should work on the project in a team (of your choosing). The ideal team size is 2, but you may work in a team that has as many as 4 people and you may work alone (if there is a good reason for you to do so). The size of the project must be commensurate with the size of the team.

Ideally, different members of the group should work on distinct components. This will make it easier for you to allocate and schedule tasks and will force you to think carefully about protocols and system design.

3 Process

Each team must use a Scrum-like process. Most importantly, you must use an incremental process and always have a working increment that can be demonstrated.

4 Proposal/Initial Product Backlog

You must get your project approved in advance. You must submit a proposal that includes: a list of team members, a brief description of the product, and a prioritized list of features that you intend to include in the product. See the syllabus for due dates.

5 Materials

All code and resources must be original (i.e., do not plagiarize and do not infringe on any copyrights). You may use code developed/used for lectures or assignments.

6 Platform/Environment

The product need not run on any particular operating system or under any particular environment. However, your team will be required to demonstrate the product (perhaps multiple times throughout the semester). Hence, the product must run on whatever equipment you have available for the presentation. You are required to test your product before any demonstration to ensure that you are able to do so.

Projects that do not satisfy this requirement will receive a grade of 0.

7 Visibility

All projects will be publicly available on the course WWW site (after the presentations).

8 Submissions

Groups must submit ALL materials associated with their projects on the "due date".

8.1 Design

Design materials must be submitted using Canvas.

8.2 Source Code

Source code must be submitted using Autolab. All source code must be in a .zip file named project.zip.

All code and documentation written for the final project must conform to the course style guides. Submissions that do not conform to the course style guide and/or the above guidelines will not be accepted.

9 Presentations

Each team must present their project in class. Presentation times will NOT be announced in advance. Teams must be prepared to present at any time during the "presentation period". Presentations will make use of ONLY the materials submitted on the "due date".

Each presentation will last about 10 minutes, including setup time and questions (though the exact length will depend on the number of teams). "Intermediate" presentations must include a brief description of the product and a demonstration of the working product. Final presentations must include a brief description of the product, a demonstration of the product, a discussion of the design, and a discussion of any implementation issues that arose.

Presentations must be informative (i.e., your fellow students must learn something from your presentation, not just be entertained)!

10 Grading

Projects will be evaluated primarily based on their technical merit (i.e., aesthetic issues will only have a minor impact on grades). To that end, your design and implementation should be: rugged (i.e., reliable, robust, and safe), easy to repair and enhance, easy to understand and use, and easy to re-use. For example, if your project is a game that needs to display scores, a good design/implementation will include classes that could easily be used in other games.

10.1 Presentations

While I do not require attendance in general, I do require (as a matter of courtesy/collegiality) that all students attend all presentations. Students who do not attend all presentations will be penalized (i.e., their grade on the project will be significantly reduced).

10.2 Peer Evaluations

All students must participate in the peer evaluation process. Students who do not participate in the peer evaluation process will receive a grade of 0 for the final project.

You will be provided with a form for evaluating you and your team members.

Copyright 2020